package com.dc.designPattern._0_设计原则._3_lsp.step2;

/**
 * Description: 里氏替换_子类_B类
 *
 * @author: gdc
 * @date: 2021/7/23
 * @version 1.0
 */
class B extends Base {

    /**
     * 如果 B 需要使用 A 类的方法,使用组合关系
     */
    private A a = new A();

    /**
     * 这里，重写了 A 类的方法, 可能是无意识
     * @param a             被减数
     * @param b             减数
     * @return              结果
     */
    public int sub(int a, int b) {
        return a + b;
    }

    public int func2(int a, int b) {
        return sub(a, b) + 9;
    }

    /**
     * 我们仍然想使用 A 的方法
     * @param a             被减数
     * @param b             减数
     * @return              结果
     */
    public int func3(int a, int b) {
        return this.a.sub(a, b);
    }
}